/********************************************************** 
 * event_process              GCW 30/11/94
 * event_process(maskptr,buffer,action,user);
 * maskptr  - pointer to integer mask for wimp poll
 * buffer   - integer address of message buffer
 * action   - vector of 20 BYTECODE actions returning FALSE to quit
 * user     - user parameter
 *
 * Changed to maskptr so that handler code can update mask
 *
 **********************************************************/

#ifndef _BOBCONSTANTS
#include bob:Constants
#endif

#ifndef _wimp_ev_process
#define _wimp_ev_process 1
#endif

event_process(maskptr,buffer,action,user)
{
 local r, respond, go_on;
 r = newvector(8);
 go_on = TRUE;
 while(go_on)
 {
  r[0] = maskptr[0];
  r[1] = buffer;
  swi("Wimp_Poll",r);
  go_on =
     (typeof(respond = action[r[0]])
               == BYTECODE)?respond(buffer,user,maskptr):TRUE;
 }
 wimp_closedown();
}
